//#include "Tree.h"
//
//
//class Solution {
//public:
//    vector<vector<int>> levelOrder(TreeNode* root) {
//        vector<vector<int>>ans;
//        if (root == NULL) return ans;
//
//        queue<TreeNode*> q;
//        TreeNode* node;
//        q.push(root);
//
//        while (!q.empty())
//        {
//            int cnt = q.size();
//            vector<int>tmp;
//            for (int i = 0; i < cnt; i++)
//            {
//                node = q.front();
//                tmp.push_back(node->val);
//                // 将当前节点压入队列中
//                if (node->left) q.push(node->left);
//                if (node->right) q.push(node->right);
//                q.pop();
//            }
//            ans.push_back(tmp); //将临时数组插入到返回数组中
//        }
//        return ans;
//    }
//};
//
//
//class Solution {
//public:
//    void dfs(TreeNode* root, int k, vector <vector<int>>& ans)
//    {
//        if (root == NULL) return ;
//        if (k == ans.size()) ans.push_back(vector<int>());
//        ans[k].push_back(root->val);
//        dfs(root->left, k + 1, ans);
//        dfs(root->right, k + 1, ans);
//
//    }
//
//    vector<vector<int>> levelOrder(TreeNode* root) {
//        vector<vector<int>> ans;
//        dfs(root, 0, ans);
//
//        return ans;
//    }
//};